﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using coliseu.BussinessLayer;

namespace coliseu.Views.Condominio
{
    public partial class FrmCadFuncionario : Form
    {
        private FuncionarioBL fBL;
        private Funcionario_ContatoBL fcBL = new Funcionario_ContatoBL();
        private CargoBL cBL = new CargoBL();
        private UfBL uBL = new UfBL();
        private funcionario f;
        private string tipo_imagem;

        private MunicipioBL mBL = new MunicipioBL();

        public FrmCadFuncionario(FuncionarioBL fBL)
        {
            InitializeComponent();
            this.fBL = fBL;
            funcionarioBindingSource.AddNew();
            tabControl1.TabPages.RemoveAt(1);

            //   ((funcionario)funcionarioBindingSource.Current).imagem = Classes.Utils.imageToByteArray(Properties.Resources.clear);
            imagemPictureBox.Image = Properties.Resources.clear;
            tipo_imagem = "png";
        }

        public FrmCadFuncionario(FuncionarioBL fBL, funcionario f)
        {
            InitializeComponent();
            this.fBL = fBL;
            this.f = f;

            funcionarioBindingSource.DataSource = f;
            imagemPictureBox.Image = Classes.Utils.byteArrayToImage(((funcionario)funcionarioBindingSource.Current).imagem);
        }

        private void cepLabel_Click(object sender, EventArgs e)
        {

        }

        private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            ValidateChildren();
            Validate();

            ((funcionario)funcionarioBindingSource.Current).id_cargo = ((cargo)cargoBindingSource.Current).id_cargo;
            ((funcionario)funcionarioBindingSource.Current).situacao = comboBox1.Text;
            ((funcionario)funcionarioBindingSource.Current).UF = ((uf)ufBindingSource.Current).uf1;

           if(!string.IsNullOrEmpty(tipo_imagem ))
                ((funcionario)funcionarioBindingSource.Current).imagem = Classes.Utils.imageToByteArray(imagemPictureBox.Image,tipo_imagem);

            funcionarioBindingSource.EndEdit();

            if (f == null)
            {
                fBL.salvar((funcionario)funcionarioBindingSource.Current, "insert");
                tabControl1.TabPages.Add(tabPage2);
            }
            else
            {
                fBL.salvar((funcionario)funcionarioBindingSource.Current, "edit");
                Close();
            }

            MessageBox.Show("Salvo com sucesso", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);


        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void FrmCadFuncionario_Load(object sender, EventArgs e)
        {
            cargoBindingSource.DataSource = cBL.selecionar();
            comboBox2.SelectedValue = ((funcionario)funcionarioBindingSource.Current).id_cargo;

            ufBindingSource.DataSource = uBL.selecionar();
            comboUF.SelectedValue = ((funcionario)funcionarioBindingSource.Current).UF;

            funcionariocontatoBindingSource.DataSource = fcBL.selecionar(((funcionario)funcionarioBindingSource.Current).id_funcionario);

        }

        private void tabPage2_Click(object sender, EventArgs e)
        {

        }

        private void button6_Click(object sender, EventArgs e)
        {
            funcionariocontatoBindingSource.AddNew();
            groupBox1.Enabled = true;
            comboBox4.Focus();
        }

        private void button7_Click(object sender, EventArgs e)
        {
            ((funcionario_contato)funcionariocontatoBindingSource.Current).tipo = comboBox4.Text;
            ((funcionario_contato)funcionariocontatoBindingSource.Current).id_funcionario = ((funcionario)funcionarioBindingSource.Current).id_funcionario;
            funcionariocontatoBindingSource.EndEdit();
            fcBL.salvar((funcionario_contato)funcionariocontatoBindingSource.Current);
            funcionariocontatoBindingSource.DataSource = fcBL.selecionar(((funcionario)funcionarioBindingSource.Current).id_funcionario);
            groupBox1.Enabled = false;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            fcBL.excluir((funcionario_contato)funcionariocontatoBindingSource.Current);
            funcionariocontatoBindingSource.DataSource = fcBL.selecionar(((funcionario)funcionarioBindingSource.Current).id_funcionario);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            List<municipio> m = mBL.selecionar(maskedTextBox1.Text);

            if (m.Count > 0)
            {
                ((funcionario)funcionarioBindingSource.Current).cidade = m[0].cidade;
                ((funcionario)funcionarioBindingSource.Current).bairro = m[0].bairro;
                ((funcionario)funcionarioBindingSource.Current).endereco = m[0].tipo_rua + " " + m[0].rua;
                ((funcionario)funcionarioBindingSource.Current).UF = m[0].uf;
            }
        }

        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void maskedTextBox1_Leave(object sender, EventArgs e)
        {
            if (maskedTextBox1.Text.Length == 8)
                button4_Click(null, new EventArgs());
        }

        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG";
            openFileDialog1.ShowDialog();
            if (!string.IsNullOrEmpty(openFileDialog1.FileName))
            {
                imagemPictureBox.ImageLocation = openFileDialog1.FileName;
                tipo_imagem = openFileDialog1.SafeFileName.Split('.')[1];
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            imagemPictureBox.Image = Properties.Resources.clear;
            ((funcionario)funcionarioBindingSource.Current).imagem = Classes.Utils.imageToByteArray(Properties.Resources.clear,"png");
        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }
    }
}
